// 泛型

export {} // 确保跟其他示例没有成员冲突

function createNumberArray (length: number, value: number): number[] {
    // Array.fill() ES6新增的  
    // 此处Array 使用了泛型 调用时才定义类型
    const arr = Array<number>(length).fill(value)
    return arr
}

function createStringArray (length: number, value: string): string[] {
    // Array.fill() ES6新增的  
    // 此处Array 使用了泛型 调用时才定义类型
    const arr = Array<string>(length).fill(value)
    return arr
}

// 使用泛型 使用时再定义类型 函数名后使用尖括号 尖括号内为泛型参数
function createArray<T> (lenth: number, value: T): T[] {
    const arr = Array<T>(length).fill(value)
    return arr
}

// const res = createNumberArray(3, 100)
// res => [100, 100, 100]

const res = createArray<string>(3, '100')